const cairo_surface_t *surface = gsk_cairo_node_peek_surface (node);
int gl_min_filter = GL_NEAREST, gl_mag_filter = GL_NEAREST;
int texture_id;
+ double scale_x, scale_y;
if (surface == NULL)
return;
get_gl_scaling_filters (node, &gl_min_filter, &gl_mag_filter);
+
+ cairo_surface_get_device_scale ((cairo_surface_t *)surface, &scale_x, &scale_y);
texture_id = gsk_gl_driver_create_texture (self->gl_driver,
- node->bounds.size.width * self->scale_factor,
- node->bounds.size.height * self->scale_factor);
+ node->bounds.size.width * scale_x,
+ node->bounds.size.height * scale_y);
gsk_gl_driver_bind_source_texture (self->gl_driver, texture_id);
gsk_gl_driver_init_texture_with_surface (self->gl_driver,
texture_id,